package com.fxkj.cloud.drms.infra.persistence.po;

import com.fxkj.cloud.drms.infra.persistence.constants.CommandSettingHistoryPOConstants;
import jakarta.persistence.*;
import lombok.*;
import com.fxkj.common.model.BaseIdentityPO;
import com.fxkj.common.model.HasOrganization;

import java.util.UUID;

import java.io.Serializable;

/**
 * @author ww
 * @date 2025-03-25 11:06:40
 */
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@MappedSuperclass
public class AbstractCommandSettingHistoryPO extends BaseIdentityPO implements Serializable, HasOrganization {

    /**
     * 请求id
     */
    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_REQUEST_ID)
    protected UUID requestId;

    /**
     * 设备id
     */
    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_DEVICE_ID)
    protected UUID deviceId;

    /**
     * 设备序列号
     */
    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_DEVICE_SERIAL_NO)
    protected String deviceSerialNo;

    /**
     * 属性id
     */
    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_ATTRIBUTE_ID)
    protected UUID attributeId;

    /**
     * 属性key
     */
    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_ATTRIBUTE_KEY)
    protected String attributeKey;

    /**
     * 属性值
     */
    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_ATTRIBUTE_VALUE)
    protected String attributeValue;

    /**
     * 属性值类型
     */
    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_ATTRIBUTE_DATA_TYPE)
    protected Integer attributeDataType;

    /**
     * 产品id
     */
    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_PRODUCT_ID)
    protected UUID productId;

    /**
     * 设备所属组织id
     */
    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_ORGANIZATION_ID)
    protected UUID organizationId;

    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_ATTRIBUTE_CODE)
    protected String attributeCode;

    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_PARENT_ATTRIBUTE_CODE)
    protected String parentAttributeCode;

    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_ATTRIBUTE_TYPE)
    protected Integer attributeType;

    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_USERNAME)
    protected String username;

    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_DEVICE_NAME)
    protected String deviceName;

    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_ATTRIBUTE_NAME)
    protected String attributeName;

    @Column(name = CommandSettingHistoryPOConstants.COMMAND_SETTING_HISTORY_COL_SERVICE_NAME)
    protected String serviceName;

}
